package com.managertrade.dto;

import lombok.Data;

import java.math.BigDecimal;
import java.util.List;
import java.util.Map;
@Data
public class BacktestRequestDTO {
    private String name;             // 回测名称
    private String coin; // BTC/ETH/BNB
    private String timeframe; // 1d/4h/1h
    private BigDecimal amount; // 初始金额
    BigDecimal feeRate;      // 手续费比例，例如 0.001
    BigDecimal slippageRate; // 滑点比例，例如 0.001

    private List<IndicatorDTO> indicators;

    @Data
    public static class IndicatorDTO {
        private String name; // EMA, MACD, BOLL, etc.
        private Map<String, Object> params; // 各指标参数
        private ConditionDTO condition; // 条件
    }

    @Data
    public static class ConditionDTO {
        private String left; // 左值, 例如 EMA.short
        private String operator; // >, <, =, >=, <=
        private String right; // 右值, 可以是数字或另一个指标字段
    }
}
